package com.factory.code.service;

import com.factory.code.controller.param.GeneratorCodeParam;
import com.factory.code.controller.param.TemplatePageParam;
import com.factory.code.controller.param.TemplateVerifyParam;
import com.factory.code.controller.vo.PageVO;
import com.factory.code.controller.vo.R;
import com.factory.code.repository.ent.TemplateENT;
import com.factory.code.service.model.CodeFileModel;
import com.factory.code.service.model.CodeVelocityModel;

import java.util.List;

public interface TemplateService {
    List<TemplateENT> listAll();

    List<TemplateENT> listAll(Integer projectId);


    TemplateENT getById(int id);

    List<CodeFileModel> getTableCodeByNames(GeneratorCodeParam param);

    String verifyTemplateContent(TemplateVerifyParam templateENT);


    R update(TemplateENT templateConfig);

    R add(TemplateENT templateConfig);

    R delete(TemplateENT templateConfig);


    /**
     * Velocity 模板参数
     *
     * @return 常用的语法
     */
    List<CodeVelocityModel> velocityTemplate(Integer projectId);

    PageVO<TemplateENT> getPage(TemplatePageParam param);
}
